package com.xinchuang.domain.entity;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import java.io.Serializable;
import java.util.Date;

import com.fasterxml.jackson.annotation.JsonInclude;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

/**
 * 
 * @TableName test_record_main_table
 */
@TableName(value ="test_record_main_table")
@Data
public class TestRecordMainTable implements Serializable {
    /**
     * 标识ID
     */
    @TableId
    private String id;

    /**
     * 模具工号
     */
    private String moldId;

    /**
     * 项目名称
     */
    private String projectName;

    /**
     * 产品名称
     */
    private String productName;

    /**
     * 产品材质
     */
    private String productMaterial;

    /**
     * 产品重量
     */
    private String productWeight;

    /**
     * 主机厂
     */
    private String hostFactory;

    /**
     * 项目负责人
     */
    private String contactPerson;

    /**
     * 设计人单位ID
     */
    private String designerUnitId;

    /**
     * 设计人用户ID
     */
    private String designerUserId;

    /**
     * 设计责任人
     */
    private String designResponsibility;

    /**
     * 钳工负责人
     */
    private String benchWorkerManager;

    /**
     * 产品表面要求
     */
    private String surfaceRequirements;

    /**
     * 零件厂
     */
    private String partFactory;

    /**
     * TO时间
     */
    private String toTime;

    /**
     * 拟制人
     */
    private String preparer;

    /**
     * 审核
     */
    private String auditor;

    /**
     * 会签
     */
    private String countersign;

    /**
     * 表单状态
     */
    private String status;

    /**
     * 创建时间
     */
    private Date createTime;

    /**
     * 更改时间
     */
    private Date updateTime;

    /**
     * 审核时间
     */
    private Date auditTime;

    /**
     * 会签时间
     */
    private Date countersignTime;

    /**
     * 钳工
     */
    private String tongmanId;

    /**
     * 钳工
     */
    private String tongmanName;

    /**
     * 主要联络人
     */
    private String projectManagerId;

    /**
     * 主要联络人
     */
    private String projectManager;

    public TestRecordMainTable() {
    }

    public TestRecordMainTable(String id, String moldId, String projectName, String productName, String productMaterial, String productWeight, String hostFactory, String contactPerson, String designResponsibility, String benchWorkerManager, String surfaceRequirements, String partFactory, String toTime, String preparer, String auditor, String countersign, String status, Date createTime, Date updateTime, Date auditTime, Date countersignTime) {
        this.id = id;
        this.moldId = moldId;
        this.projectName = projectName;
        this.productName = productName;
        this.productMaterial = productMaterial;
        this.productWeight = productWeight;
        this.hostFactory = hostFactory;
        this.contactPerson = contactPerson;
        this.designResponsibility = designResponsibility;
        this.benchWorkerManager = benchWorkerManager;
        this.surfaceRequirements = surfaceRequirements;
        this.partFactory = partFactory;
        this.toTime = toTime;
        this.preparer = preparer;
        this.auditor = auditor;
        this.countersign = countersign;
        this.status = status;
        this.createTime = createTime;
        this.updateTime = updateTime;
        this.auditTime = auditTime;
        this.countersignTime = countersignTime;
    }

    @TableField(exist = false)
    private static final long serialVersionUID = 1L;

    @Override
    public boolean equals(Object that) {
        if (this == that) {
            return true;
        }
        if (that == null) {
            return false;
        }
        if (getClass() != that.getClass()) {
            return false;
        }
        TestRecordMainTable other = (TestRecordMainTable) that;
        return (this.getId() == null ? other.getId() == null : this.getId().equals(other.getId()))
            && (this.getMoldId() == null ? other.getMoldId() == null : this.getMoldId().equals(other.getMoldId()))
            && (this.getProjectName() == null ? other.getProjectName() == null : this.getProjectName().equals(other.getProjectName()))
            && (this.getProductName() == null ? other.getProductName() == null : this.getProductName().equals(other.getProductName()))
            && (this.getProductMaterial() == null ? other.getProductMaterial() == null : this.getProductMaterial().equals(other.getProductMaterial()))
            && (this.getProductWeight() == null ? other.getProductWeight() == null : this.getProductWeight().equals(other.getProductWeight()))
            && (this.getHostFactory() == null ? other.getHostFactory() == null : this.getHostFactory().equals(other.getHostFactory()))
            && (this.getContactPerson() == null ? other.getContactPerson() == null : this.getContactPerson().equals(other.getContactPerson()))
            && (this.getDesignResponsibility() == null ? other.getDesignResponsibility() == null : this.getDesignResponsibility().equals(other.getDesignResponsibility()))
            && (this.getBenchWorkerManager() == null ? other.getBenchWorkerManager() == null : this.getBenchWorkerManager().equals(other.getBenchWorkerManager()))
            && (this.getSurfaceRequirements() == null ? other.getSurfaceRequirements() == null : this.getSurfaceRequirements().equals(other.getSurfaceRequirements()))
            && (this.getPartFactory() == null ? other.getPartFactory() == null : this.getPartFactory().equals(other.getPartFactory()))
            && (this.getToTime() == null ? other.getToTime() == null : this.getToTime().equals(other.getToTime()))
            && (this.getPreparer() == null ? other.getPreparer() == null : this.getPreparer().equals(other.getPreparer()))
            && (this.getAuditor() == null ? other.getAuditor() == null : this.getAuditor().equals(other.getAuditor()))
            && (this.getCountersign() == null ? other.getCountersign() == null : this.getCountersign().equals(other.getCountersign()))
            && (this.getStatus() == null ? other.getStatus() == null : this.getStatus().equals(other.getStatus()))
            && (this.getCreateTime() == null ? other.getCreateTime() == null : this.getCreateTime().equals(other.getCreateTime()))
            && (this.getUpdateTime() == null ? other.getUpdateTime() == null : this.getUpdateTime().equals(other.getUpdateTime()))
            && (this.getAuditTime() == null ? other.getAuditTime() == null : this.getAuditTime().equals(other.getAuditTime()))
            && (this.getCountersignTime() == null ? other.getCountersignTime() == null : this.getCountersignTime().equals(other.getCountersignTime()));
    }

    @Override
    public int hashCode() {
        final int prime = 31;
        int result = 1;
        result = prime * result + ((getId() == null) ? 0 : getId().hashCode());
        result = prime * result + ((getMoldId() == null) ? 0 : getMoldId().hashCode());
        result = prime * result + ((getProjectName() == null) ? 0 : getProjectName().hashCode());
        result = prime * result + ((getProductName() == null) ? 0 : getProductName().hashCode());
        result = prime * result + ((getProductMaterial() == null) ? 0 : getProductMaterial().hashCode());
        result = prime * result + ((getProductWeight() == null) ? 0 : getProductWeight().hashCode());
        result = prime * result + ((getHostFactory() == null) ? 0 : getHostFactory().hashCode());
        result = prime * result + ((getContactPerson() == null) ? 0 : getContactPerson().hashCode());
        result = prime * result + ((getDesignResponsibility() == null) ? 0 : getDesignResponsibility().hashCode());
        result = prime * result + ((getBenchWorkerManager() == null) ? 0 : getBenchWorkerManager().hashCode());
        result = prime * result + ((getSurfaceRequirements() == null) ? 0 : getSurfaceRequirements().hashCode());
        result = prime * result + ((getPartFactory() == null) ? 0 : getPartFactory().hashCode());
        result = prime * result + ((getToTime() == null) ? 0 : getToTime().hashCode());
        result = prime * result + ((getPreparer() == null) ? 0 : getPreparer().hashCode());
        result = prime * result + ((getAuditor() == null) ? 0 : getAuditor().hashCode());
        result = prime * result + ((getCountersign() == null) ? 0 : getCountersign().hashCode());
        result = prime * result + ((getStatus() == null) ? 0 : getStatus().hashCode());
        result = prime * result + ((getCreateTime() == null) ? 0 : getCreateTime().hashCode());
        result = prime * result + ((getUpdateTime() == null) ? 0 : getUpdateTime().hashCode());
        result = prime * result + ((getAuditTime() == null) ? 0 : getAuditTime().hashCode());
        result = prime * result + ((getCountersignTime() == null) ? 0 : getCountersignTime().hashCode());
        return result;
    }

    @Override
    public String toString() {
        StringBuilder sb = new StringBuilder();
        sb.append(getClass().getSimpleName());
        sb.append(" [");
        sb.append("Hash = ").append(hashCode());
        sb.append(", id=").append(id);
        sb.append(", moldId=").append(moldId);
        sb.append(", projectName=").append(projectName);
        sb.append(", productName=").append(productName);
        sb.append(", productMaterial=").append(productMaterial);
        sb.append(", productWeight=").append(productWeight);
        sb.append(", hostFactory=").append(hostFactory);
        sb.append(", contactPerson=").append(contactPerson);
        sb.append(", designResponsibility=").append(designResponsibility);
        sb.append(", benchWorkerManager=").append(benchWorkerManager);
        sb.append(", surfaceRequirements=").append(surfaceRequirements);
        sb.append(", partFactory=").append(partFactory);
        sb.append(", toTime=").append(toTime);
        sb.append(", preparer=").append(preparer);
        sb.append(", auditor=").append(auditor);
        sb.append(", countersign=").append(countersign);
        sb.append(", status=").append(status);
        sb.append(", createTime=").append(createTime);
        sb.append(", updateTime=").append(updateTime);
        sb.append(", auditTime=").append(auditTime);
        sb.append(", countersignTime=").append(countersignTime);
        sb.append(", serialVersionUID=").append(serialVersionUID);
        sb.append("]");
        return sb.toString();
    }
}